package symbols;

public class Tag {
	
	public static final int
	EXCL            = 33,   // !                    
    ASPASDUPLA      = 34,   // "                    
    SHARP           = 35,   // #                    
    CIFRAO          = 36,   // $                    
    PORCENT         = 37,   // %                    
    ECOMERCIAL      = 38,   // &                    
    ASPASSIMP       = 39,   // '                    
    LEFTPAR         = 40,   // (                    
    RIGHTPAR        = 41,   // )                    
    ASTERISK        = 42,   // *                    
    PLUS_SIG        = 43,   // +                    
    COLON           = 44,   // ,                    
    MINUS_SIG       = 45,   // -                    
    POINT           = 46,   // .                    
    DIV_SIG         = 47,   // /                    
    // 48-57 = numeros
    TWOPOINTS       = 58,   // :
    SEMICOLON       = 59,   // ;
    MINOR           = 60,   // <
    EQUAL_SIG       = 61,   // =
    GREATER         = 62,   // >
    QUESTION        = 63,   // ?
    ARROBA          = 64,   // @
    // 65-90 = letras maiusculas
    LCOLCHETE       = 91,   // [
    INVBAR          = 92,   // \
    RCOLCHETE       = 93,   // ]
    HAT		        = 94,   // ^
    UNDERLINE       = 95,   // _
    CRASE           = 96,   // `
    // 97-122 = letras minusculas
    LCHAVE          = 123,  // {
    PIPE            = 124,  // |
    RCHAVE          = 125,  // }
    TIO             = 126,  // ~
	
	
	ID	 		= 301,	// id
	NUMBER 		= 302,	// num
	LETTER		= 303,	// letter
	COMMENT 	= 3737,	// %%
	
	PROGRAM		= 322,	// program
	IF 			= 323,	// if
	ENDIF		= 324,	// endif
	ELSE 		= 325,	// else
	ENDELSE		= 326,	// endelse
	FOR 		= 327,	// for
	ENDFOR		= 328,	// endfor
	WHILE 		= 329,	// while
	ENDWHILE	= 330,	// endwhile
	RETURN		= 331,  // return
	PRINT		= 332,	// print
	INPUT		= 333,	// input
	
	// types
	BASIC		= 339,	// basic
	INDEX		= 340,	// index
	CHAR 		= 341,	// char
	INT 		= 342,	// int
	ARRAY		= 343,  // array
	BOOL		= 343,	// bool
	FLOAT		= 344,	// float
	REAL		= 345,	// float
	STRING		= 346,	// string
	VOID 		= 347,  // void
	STRUCT		= 348,	// struct
	
	// Operations
	NE			= 371,	// <>
	AND			= 372,  // &&
	OR			= 373,	// ||
	LE			= 374,	// <=
	GE			= 375,  // >=
	LT			= MINOR,	// <
	GT			= GREATER,	// >
	EQ			= 378,	// ==
	MINUS		= MINUS_SIG,	// -
	ADD			= PLUS_SIG,	// +
	MULT		= ASTERISK,	// *
	DIV			= DIV_SIG,	// /
	POW			= 383,  // **
	RESTDIV		= PORCENT,	// %
	
	TRUE		= 400,	// true
	FALSE		= 401,	// false
	
	EOF 		= '\0', // EOF
	NEWLINE		= '\n', // \n
	TAB			= '\t', // \t
	SPACE		= ' ',	// ' '
	
	TEMP 		= 500,	// temp
	ERROR		= 501,
	VAZIO		= 502;
	
	public String toString(Integer tag) {
		return tag.toString();
		
	}
}

